package com.chalmers.foa.gamemodel.gameobjects;

import android.graphics.Point;

public interface IGameObject extends Comparable<IGameObject> {

	public int getBoundID();
	public void bindObject(IGameObject _boundObject, Point offset);
	public void unbindObject();
	public void unbindObject(IGameObject _boundObject);
	public boolean hasBound();
	public boolean isBound();
	public void setBound(boolean value);
	public IGameObject getHost();
	public void unsetBoundObject();
	public void setHost(IGameObject _host);
	public IGameObject getBoundObject();
	public void setNewPosition(Point position);
	public void setPosition(Point position);	
	public int getHeight();
	public Point getPosition();
	public int getWidth();	
	public boolean isAlive();
	public void setAlive(boolean _alive);
	public Point getPreviousPosition();
	public void translate(int x, int y);
	public void translate(Point offset);
	public void revertToStartPosition();
	public boolean isSolid();
	public boolean affectedByGravity();
	public boolean affectedByTilting();
	public boolean isHazardous();
	public int getLayer();
	public void update();
	public void setID(int _id);
	public int getID(); 
}
